package ErChaShu;

public interface BinTree {
    /**
     * 插入数据
     * @param data 数据元素对象
     * @return
     */
    boolean insert(int data);
    /**
     * 获取某个节点的双亲节点
     * 已知孩子节点下标为i,双亲节点下标为int((i-1)/2)
     * @param index 孩子节点下标
     * @return 双亲节点数据元素
     */
    Integer getParent(int index);
    /**
     * 获取某个节点的左孩子
     * 已知双亲节点下标为i,左孩子节点下标为2*i+1
     * @param index 双亲节点下标
     * @return 左孩子节点数据元素
     */
    Integer getLeftChild(int index);
    /**
     * 获取某个节点的右孩子
     * 已知双亲节点下标为i,左孩子节点下标为2*i+2
     * @param index 双亲节点下标
     * @return
     */
    Integer getRightChild(int index);
    /**
     * 打印二叉树
     */
    void display();
    /**
     * 先序遍历
     */
    void preOrderTraversal();
    /**
     * 中序遍历
     */
    void inOrderTraversal();
    /**
     * 后序遍历
     */
    void postOrderTraversal();
}
